Practical ne-grained static slicing of optimized code

نویسنده

  • Michael D. Ernst
چکیده

Program slicing is a technique for visualizing dependences and restricting attention to just the components of a program relevant to evaluation of certain expressions. Backward slicing reveals which other parts of the program the expressions' meaning depends on, while forward slicing determines which parts of the program depend on their meaning. Slicing helps programmers understand program structure, which aids program understanding, maintenance, testing, and debugging; slicing can also assist parallelization, integration and comparison of program versions, and other tasks. This paper improves previous techniques for static slicing. Our algorithm is expression-oriented rather than based on statements and variables, resulting in smaller slices. A user can slice on any value computed by the program|including ones that are not, or cannot be, assigned to variables. The slicer accounts for function calls, pointers, and aggregate structures. It takes advantage of compiler analyses and transformations, resulting in more precise slices, and bypasses syntactic constraints by directly constructing executable slices. These techniques are implemented in a slicer for the C programming language that accepts input via mouse clicks; operates on the value dependence graph, a data owlike program representation that is especially well-suited to slicing; and displays closure slices by highlighting portions of the program in the programmer's editor.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Practical Ne-grained Static Slicing of Optimized Code Practical Ne-grained Static Slicing of Optimized Code

Program slicing is a technique for visualizing dependences and restricting attention to just the components of a program relevant to evaluation of certain expressions. Backward slicing reveals which other parts of the program the expressions' meaning depends on, while forward slicing determines which parts of the program depend on their meaning. Slicing helps programmers understand program stru...

متن کامل

Optimizing KLIC Generic Objects by Static Analysis

The KLIC system has achieved both high portability and extensibility by employing C as an intermediate language and featuring generic objects that allow users to dene new classes of data. It is also e cient for an untyped and unmoded language with ne-grained concurrency, but its exibility incurs runtime overhead that could be reduced by static analysis. This paper studies how constraint-based s...

متن کامل

Clauser: Clause Slicing Tool for C Programs

The Clause slicing technique is a static slicing technique. The clause slice criterion is the clause, which is the smallest part of the code line, with the clause number. In this paper, we introduce the “Clauser,” which is a new clause slicing tool for C programs. The Clauser is a slicing tool that divides the program code lines into clauses, depending on certain rules, and then it slices the c...

متن کامل

Slicing Concurrent Logic Programs

Program slicing has been widely studied for imperative programs, but for logic programs it is just starting. In this paper we address the problem of slicing concurrent logic programs. To solve this problem, we propose three types of primary program dependences between arguments in concurrent logic programs, named the sharing dependence, communication dependence and uni cation dependence. We als...

متن کامل

Static Backward Program Slicing for Safety-Critical Systems

Static program slicing is a technique to detect the program parts (i.e. the “slice”) of the given program possibly affecting a given property. The technique is of interest for analysing safety-critical software, since it can identify the program parts that may affect various safety properties. Verification efforts can then be directed towards those parts, leading to a more efficient verificatio...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2016